這邊介紹路由的兩種寫法:
適合簡單的應用
// Program.cs
app.MapGet("/", () => "Hello World!");
註冊Controller
// Program.cs
builder.Services.AddControllers();
// UserController.cs
[ApiController]
[Route("[controller]")]
public class UserController : ControllerBase
{
private readonly UserService _userService;
public UserController(UserService userService)
{
_userService = userService;
}
[HttpGet]
public async Task<ActionResult<List<User>>> GetAll()
{
var users = await _userService.GetUserAsync();
return Ok(users);
}
}
NestJS constructor預設就是public,不用特別寫,才注意到這個。
這裡的順序是先宣告_userService
欄位,再到constructor裡賦值,
跟NestJS直接在constructor裡,同時宣告和賦值,不太一樣。
功能項目 | ASP.NET Core 屬性 | NestJS 裝飾器 |
---|---|---|
類別 | [ApiController] 、[Route("...")] |
@Controller('...') |
方法 | [HttpGet] 、[HttpPost] |
@Get() 、@Post() |
路由參數 | [HttpGet("{id}")] |
@Get(':id') ,用 @Param('id') 取得 |
今天有些忙碌,先這樣,晚點有時間,再回來補充